<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  p {
    font-size: 28px;
  }
  .color {
    color: hotpink;
  }
</style>
<body>
  <p>abcdefg</p>
  <!-- <input type="text" name="title">
  <span></span> -->
  <script>
  //   // let keywords = ['javascript','css'];
  //   // let title = document.querySelector("[name='title']");
  //   // let span = document.querySelector('span');
  //   // title.addEventListener('keyup',function(){
  //   //   let res = keywords.some(keyword => {
  //   //     return this.value.indexOf(keyword) !== -1;
  //   //   });
  //   //   if(!res) {
  //   //     span.innerHTML = '必须包含' + keywords.join(',') + '关键字';
  //   //   }else {
  //   //     span.innerHTML = '';
  //   //   }
  //   // });
  //   let sore = [
  //       {name:'张三',sore:99},
  //       {name:'李四',sore:89},
  //       {name:'王五',sore:55}
  //   ];
  //  let res = sore.every((item,index,arr) => {
  //     return item.sore >= 60;
  //   });
  // res = res ? '全部及格' : '有部分人没有及格';
  // console.log(res);//'有部分人没有及格'\
//   const lessons = [
//         {title:'媒体查询响应式布局',category:'css'},
//         {title:'flex 弹性盒模型',category:'css'},
//         {title:'MySQL多表查询随意操作',category:'mysql'}
//   ];
//  function myFilter(callback) {
//    let ary = [];
//     for(let k in this) {
//       if(callback(this[k],k,this)) {
//         ary.push(this[k]);
//       }
//     }
//     return ary;
//  }
//  Array.prototype.myFilter = myFilter;
//  const res = lessons.myFilter(function(item,index,arr){
//     return item.category == 'css';
//  });
//  console.log(res);


    // let arr = [1,3,54,6,7,81,-91];
    // function arrMax(array) {
    //   return array.reduce(function(max,item) {
    //    return max > item ? max : item;
    //   });
    // }
    // const  max = arrMax(arr);
    // console.log(max);

    // const arr = [1,2,3,4,1,1,3];
    // function numCount(array,count) {
    //   return array.reduce((pre,item,index,arr) => {
    //       return pre += item === count ? 1 : 0;
    //     },0);
    // }

    // const count = numCount(arr,3);
    // console.log(count);
    // const  arr = [1,2,3,4,5];
    // function mySum(array) {
    //   return array.reduce((pre,item) => pre += item,0);
    // } 
    // console.log(mySum(arr));
    // const  arr = [1,2,3,4,5,6,7,8,9,10];
    // Array.prototype.mySum = function () {
    //   return this.reduce((pre,item) => pre += item,0);
    // }
    // console.log(arr.mySum());

  //   const cart = [
  //       {name:'iphoneXS',price:12800},
  //       {name:'imax',price:12800},
  //       {name:'iwatch',price:3200},
  //       {name:'ipad',price:12800},
  //       {name:'BMW',price:1280000}
  //   ];
  //  const maxPrice = cart.reduce((pre,item) => pre.price >= item.price ? pre : item).price;
  //  const maxPriceItems =  cart.filter(item => {
  //     return item.price === maxPrice;
  //   });
  //   console.log(maxPriceItems); //[{name: "BMW", price: 1280000}]


    // const cart = [
    //     {name:'iphoneXS',price:12800},
    //     {name:'imax',price:12800},
    //     {name:'iwatch',price:3200},
    //     {name:'ipad',price:12800},
    //     {name:'BMW',price:1280000}
    // ];
    // const more10000 = cart.reduce((pre,item) => {
    //  return item.price > 10000 ? (pre.push(item),pre) : pre;
    // },[]).map(item => {
    //   return item['aaa'] = '111';
    // })
    // console.log(more10000)
    // console.log(cart)

    // const arr = [1,2,3,1,4,5,1,54,6,78];
    // const newArr = arr.reduce((pre,next) => {
    //   if(!pre.includes(next)) {
    //     pre.push(next);
    //   }
    //   return pre;
    // },[]);
    // console.log(newArr)
    // let p = document.querySelector('p');
    // console.log(p.textContent);
    // [...p.textContent].reduce((pre,item,index) => {
    //   pre === index && (p.innerHTML = "");
    //   let span = document.createElement('span');
    //   span.innerHTML = item;
    //   p.appendChild(span);
    //   span.addEventListener('mouseenter',function() {
    //     this.classList.add('color');
    //   });
    //   span.addEventListener('mouseleave',function() {
    //     this.classList.remove('color');
    //   });
    // },0);
    const cart = [
        {name:'iphoneXS',price:12800},
        {name:'imac',price:12800},
        {name:'iwatch',price:3200},
        {name:'ipad',price:12800},
        {name:'iphoneXS',price:12800},
        {name:'BMW',price:1280000},
        {name:'ipad',price:12800}, 
        {name:'BMW',price:1280000}
    ];
    const newCart = cart.reduce((pre,cur)=>{
      const find = pre.find(item => {
        return item.name === cur.name;
      });
      if(!find) {
        pre.push(cur);
      }
      return pre;
    },[]);
    console.log(newCart);
  </script>
</body>
</html>